It would be nice to in addition to the current focus stealing prevention, if there were a mode in which no application could ever steal focus for any reason.
Given how focus management is done in X, I am not sure this is even doable (at least, reliably). There's no "FocusRequest" (like you have a MapRequest for example) mechanism that the window manager could reliably intercept, all the WM gets is FocusIn and FocusOut events (ie it's notified *after* focus was changed), and nothing can really prevent an application from doing an XSetInputFocus [1]. it's even expected when using the "take focus" mechanism as defined in ICCCM [2], the WM relies on the applications to do the focus themselves (via a client message). That said, if you have patches to improve the current state of focus management in xfwm4, I'll gladly consider them :-) But that code in xfwm4 is quite complex (given the different modes of focus available, the different mechanisms possible) and touchy (ie most of the times, changes there introduce regressions and rarely any improvement). [1] http://tronche.com/gui/x/xlib/input/XSetInputFocus.html [2] http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7
So, in a nutshell, the best I can come up with is: 1. Set "do not focus window automatically " in xfwm4 settings 2. Enable focus stealing prevention in xfwm4-tweaks settings